package com.example.example004;

public class FinalExample {

	private static FinalExample exampl = new FinalExample();
	
	final String arg1;
	static final String arg2 ;
	
	
	{
		arg1 = "初始化了..........";
		//arg2 = "初始化了.........."; 错误的
	}
	
	static {
		arg2 = "初始化了..........";
		//arg1 = "初始化了.........."; 错误的
	}
	
	public FinalExample(){
		//arg1 = "初始化了..........";不能初始化两次
		
	}
	
	
	public static void main(String[] args) {
		System.out.println(exampl.arg1);
	}
}


/*

被final修饰的变量必须被初始化。初始化的方式有以下几种：
1. 在定义的时候初始化。
2. final变量可以在初始化块中初始化，不可以在静态初始化块中初始化。
3. 静态final变量可以在静态初始化块中初始化，不可以在初始化块中初始化。
4. final变量还可以在类的构造器中初始化，但是静态final变量不可以。

*/













